Booting Process

CPU는 RAM에서 BIOS 코드를 읽어 실행->PC 기본적인 초기화
(VGA를 통해 화면 출력, RAM 체크, HDD 인식, PnP 세팅 등 실행; 하드웨어 초기화)
-> 하드웨어 초기화 과정 이후, 저장 매체에 접근할 수 잇는 상태가 됨

BIOS는 부팅 가능한 순서가 지정된 디바이스를 찾아 부팅을 시도 -> 각 디바이스의 첫 512 bytes를 읽어 실행

하드디스크의 첫 섹터 MBR만이 부팅에 사용됨(첫 드라이브의 MBR만 사용)
MBR은 로더 프로그램과 파이션 테이블 정보를 담고 있다.

로더-> 부트 섹터를 읽어 부트(로더 446바이트, 파티션 테이블 64바이트)
; 2 바이트의 매직 넘버를 통해 부트 섹터가 맞는지 확인


로더는 하드 디스크에서 bzImage를 읽어 메모리에 로드한다.



커널 이미지의 "setup"은 압축 해제 준비, "bootsect"는 부팅할 때 사용되며
"head+misc"는 압축된 커널 이미지를 압축 해제하고 실행 가능한 리눅스 커널을 메모리에 올린다.